package mx.unam.proteco.entidades;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 *
 * @author Juan Fco. Navarrete
 */

@Entity
@Table(name = "DEPARTAMENTOS")
public class Departamento implements Serializable
{
    private Long departamentoId;
    private String nombre;
    private Empleado gerente;
    private Collection<Empleado> empleados;

    @Id
    @GeneratedValue
    @Column(name = "DEPARTAMENTO_ID")
    public Long getDepartamentoId()
    {
        return departamentoId;
    }

    public void setDepartamentoId(Long departamentoId)
    {
        this.departamentoId = departamentoId;
    }

    @OneToMany(mappedBy = "departamento")
    public Collection<Empleado> getEmpleados()
    {
        return empleados;
    }

    public void setEmpleados(Collection<Empleado> empleados)
    {
        this.empleados = empleados;
    }

    @OneToOne(optional = false)
    @JoinColumn(name = "GERENTE_ID")
    public Empleado getGerente()
    {
        return gerente;
    }

    public void setGerente(Empleado gerente)
    {
        this.gerente = gerente;
    }

    @Column(length = 100, nullable = false)
    public String getNombre()
    {
        return nombre;
    }

    public void setNombre(String nombre)
    {
        this.nombre = nombre;
    }

    @Override
    public String toString()
    {
        return "Departamento{" + "departamentoId=" + departamentoId + "nombre=" + nombre + "gerente=" + gerente + '}';
    }
}
